/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.sigu.negocio.serviceImpl;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pe.edu.upc.sigu.entities.AlumnoCursoSeccion;
import pe.edu.upc.sigu.entities.Alumnos;
import pe.edu.upc.sigu.entities.Carreras;
import pe.edu.upc.sigu.entities.Ciclo;
import pe.edu.upc.sigu.entities.Cursos;
import pe.edu.upc.sigu.entities.NotasAlumnoCurso;
import pe.edu.upc.sigu.entities.Periodos;
import pe.edu.upc.sigu.entities.Personal;
import pe.edu.upc.sigu.entities.Seccion;
import pe.edu.upc.sigu.modelo.dao.AlumnoCursoSecccionDao;
import pe.edu.upc.sigu.modelo.dao.AlumnosPeriodosDao;
import pe.edu.upc.sigu.modelo.dao.NotasAlumnoCursoDao;
import pe.edu.upc.sigu.modelo.dao.DocentesPeriodosDao;
import pe.edu.upc.sigu.negocio.service.CursosSeccionesDocentesDao;
import pe.edu.upc.sigu.negocio.service.NotasServive;

/**
 *
 * @author Usuario2
 */
@Service(value = "notasServive")
public class NotasServiveImpl implements NotasServive {

    @Autowired
    AlumnosPeriodosDao alumnosPeriodosDao;

    @Autowired
    AlumnoCursoSecccionDao alumnoCursoSecccionDao;

    @Autowired
    NotasAlumnoCursoDao notasAlumnoCursoDao;

    @Autowired
    DocentesPeriodosDao docentesPeriodos ;

    @Autowired
    CursosSeccionesDocentesDao cursosSeccionesDocentesDao ;


    @Override
    public List<Periodos> getPeriodosList(Alumnos alumno) {
        return alumnosPeriodosDao.getPeriodosList(alumno);
    }

    @Override
    public List<Ciclo> getCiclosList(Alumnos alumno) {
        List ciclosList = alumnosPeriodosDao.getCiclosList(alumno);

        System.out.println(" cant de ciclos "+ciclosList.size());

        List<Ciclo> _ciclosList = new ArrayList();
        

        for (Object object : ciclosList) {
            Integer nivel = (Integer) object;
            Ciclo ciclo = null;
            switch (nivel) {
                case 1:
                    ciclo = new Ciclo(nivel, "I");
                    break;
                case 2:
                    ciclo = new Ciclo(nivel, "II");
                    break;
                case 3:
                    ciclo = new Ciclo(nivel, "III");
                    break;
                case 4:
                    ciclo = new Ciclo(nivel, "IV");
                    break;
                case 5:
                    ciclo = new Ciclo(nivel, "V");
                    break;
                case 6:
                    ciclo = new Ciclo(nivel, "VI");
                    break;
                case 7:
                    ciclo = new Ciclo(nivel, "VII");
                    break;
                case 8:
                    ciclo = new Ciclo(nivel, "VIII");
                    break;
                case 9:
                    ciclo = new Ciclo(nivel, "IX");
                    break;
                case 10:
                    ciclo = new Ciclo(nivel, "X");
                    break;
                case 11:
                    ciclo = new Ciclo(nivel, "XI");
                    break;
                case 12:
                    ciclo = new Ciclo(nivel, "XII");
                    break;
            }

            _ciclosList.add(ciclo);
        }


        return _ciclosList;
    }

    @Override
    public List<Cursos> getCurosList(Periodos periodo, Alumnos alumno) {
        return alumnoCursoSecccionDao.getCurosList(periodo,alumno);

    }

    @Override
    public List<NotasAlumnoCurso> getNotasCurosList(Periodos periodo, Alumnos alumno) {
        return notasAlumnoCursoDao.getNotasCurosList(periodo,alumno);
    }

    @Override
    public List<Periodos> getPeriodosList(Personal personal) {
       return docentesPeriodos.getPeriodosList(personal);
    }

    @Override
    public List<Carreras> getCarreras(Periodos periodo, Personal personal) {
      return  cursosSeccionesDocentesDao.getCarreras(periodo, personal) ;
    }

    @Override
    public List<Seccion> getSecciones(Periodos periodos, Personal personal, Carreras carrera) {
        return  cursosSeccionesDocentesDao.getSecciones(periodos, personal,carrera );
    }

    @Override
    public List<Cursos> getCursos(Periodos periodo, Personal personal, Carreras carrera, Seccion seccion) {
        return    cursosSeccionesDocentesDao.getCursos(periodo, personal, carrera, seccion);
    }

    @Override
    public List getAlumnnosNotas(Periodos periodo,  Carreras carrera, Seccion seccion, Cursos curso) {

        List result =  alumnoCursoSecccionDao.getAlumnnosNotas(periodo, carrera, seccion, curso);
   
        return result;
       //return alumnoCursoSecccionDao.getAlumnnosNotas(periodo, personal,carrera, seccion, curso);
    }

    @Override
    public List getNotasCurosList2(Periodos periodos, Alumnos alumno ,Cursos curso) {
        return alumnoCursoSecccionDao.getAlumnnosNotas2(periodos, alumno, curso);
    }

    @Override
    public int actualizarNota(NotasAlumnoCurso nota) {
        return  notasAlumnoCursoDao.actualizarNota(nota);
    }

    

      /*  return .getCurosList(periodo,alAlumnosPeriodosDaoumno);
            @Override
    public List<Cursos> getCurosList(Periodos periodo, Alumnos alumno) {

        String sql = "SELECT  a.cursos FROM AlumnosPeriodos a WHERE a.alumnos=:paramAlumno";
        Query query = entityManager.createQuery(sql);
        query.setParameter("paramAlumno", alumno);

        return query.getResultList();
    }*/
    }

